﻿package Classes.Facebook{

	import com.facebook.Facebook;
	import com.facebook.utils.FacebookSessionUtil;
	import com.facebook.commands.notifications.*;
	import com.facebook.commands.stream.*;
	import com.facebook.net.FacebookCall;
	import com.facebook.events.*;
	
	import Classes.BaseProperties;

	import com.hurlant.crypto.hash.MD5;
	
	import Classes.Score.*;

	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;

	import flash.display.*;

	public class Connect extends Sprite {

		private var fbook:Facebook;
		// these are the api and secret keys you should be used to
		private var api_key:String;
		private var secret_key:String;
		// starting a new facebook session
		private var fb_session:FacebookSessionUtil;
		// in this object I will store all variables Facebook will pass to the movie
		private var passed_vars:Object;
		// this variable will hold all facebook API calls
		private var fbcall:FacebookCall;
		
		private var loader:LoaderInfo;
		private var alert:mcAlert;

		public function Connect(l:LoaderInfo) {
			
			loader = l;

			api_key="7df059fbaa99144615f96248b68ffd1f";
			secret_key="f1c2f649dc7d270652dc75e3777e6f2b";

			fb_session=new FacebookSessionUtil(api_key,secret_key,l);
			fbook=fb_session.facebook;
			
			fb_session.addEventListener(FacebookEvent.CONNECT, onFacebookConnect);
			fb_session.addEventListener(FacebookEvent.WAITING_FOR_LOGIN, onWaitLogin);
			
			fbook.login(false);			
			get_vars();

		}
		
		public function onWaitLogin(e:Event){
			
			alert = new mcAlert();
			BaseProperties.activeStage.addChild(alert);
			alert.txtAlert.text = "U WORDT DOORGESTUURD NAAR EEN FACEBOOKPAGINA OM UW INLOGGEGEVENS TE BEVESTIGEN. \n KLIK HIER ALS U KLAAR BENT OP DIE PAGINA";
			
			alert.addEventListener(MouseEvent.CLICK, permission);
		}
		
		public function permission(e:Event){
			
			BaseProperties.activeStage.removeChild(alert);
			
			alert = new mcAlert();
			alert.addEventListener(MouseEvent.CLICK, validate);
			BaseProperties.activeStage.addChild(alert);
			alert.txtAlert.text = "U WORDT DOORGESTUURD NAAR EEN FACEBOOKPAGINA OM \n TOESTEMMING TE GEVEN AAN DEZE APPLICATIE. \n KLIK HIER ALS U KLAAR BENT OP DIE PAGINA";
			
			fbook.grantExtendedPermission('publish_stream');
			
		}
		
		public function validate(e:Event){
			
			BaseProperties.activeStage.removeChild(alert);
			fb_session.validateLogin();
			
		}
		
		public function onFacebookConnect(e:Event){
			
			sendPost();
			
		}

		public function sendPost():void {
			// retrieving the user id (it's one of the variables passed by Facebook)
			get_vars();
			var uid:Number=Number(passed_vars["fb_sig_user"]);
			fbcall=new PublishPost("heeft juist "+Keeper.getInstance().getScore().toString()+" punten gescoord in \"Van m'n erf\"" ,{'href':'http://www.festivaldranouter.be','name':'\"Van m\'n erf\"','description':'Festival Dranouter deelt prijzen uit! Wie doet beter en maakt kans op drinktickets voor Dranouter Festival? (met dEUS, Anouk, The Pogues, Paolo Conte, Joss Stone, Tindersticks, etc….)','media':[{'type': 'image','src':'http://game.folkdranouter.be/inc/dranouterLogo.png', 'href': 'http://game.folkdranouter.be'}]},[{'href':'http://www.festivaldranouter.be','text':'Bezoek onze website'}],uid.toString());
			fbook.post(fbcall);

		}

		public function get_vars():void {

			var varname:String;
			var varvalue:String;
			passed_vars=loader.parameters;

		}



	}

}